package com.alibaba.citrus.cr.sales.plan.repository;

import com.alibaba.citrus.cr.sales.plan.dto.api.request.NotificationConfigQueryRequest;
import com.alibaba.citrus.cr.sales.plan.dto.api.request.PageQueryNotificationConfigRequest;
import com.alibaba.citrus.cr.sales.plan.sdo.MonthlyPlanDataSDO;
import com.alibaba.citrus.cr.sales.plan.sdo.NotificationConfigSDO;
import com.alibaba.cz.base.tool.page.PageResult;

import java.util.List;

public interface NotificationConfigRepository {

    String save(NotificationConfigSDO notificationConfigSDO);

    PageResult<List<NotificationConfigSDO>> pageQuery(PageQueryNotificationConfigRequest pageQueryNotificationConfigRequest);

    PageResult<List<NotificationConfigSDO>> pageQueryMailTemplate(PageQueryNotificationConfigRequest pageQueryNotificationConfigRequest);

    Boolean doEdit(NotificationConfigSDO notificationConfigSDO);

    Integer editNotificationConfig(NotificationConfigSDO notificationConfigSDO);

    NotificationConfigSDO queryNotificationConfig(NotificationConfigQueryRequest configQueryRequest);


    /**
     * 根据id查询邮件发送配置
     *
     * @param notificationConfigQueryRequest
     * @return
     */
    NotificationConfigSDO queryNotificationConfigById(NotificationConfigQueryRequest notificationConfigQueryRequest);

    /**
     * 生成月度计划数据模板-Excel
     *
     * @param
     * @return
     */
    void generateExcel(List<MonthlyPlanDataSDO> excelList, String fileName,String planTime);
}
